package com.baosight.sczx.zm.cs.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.ep.ServiceEPBase;
import com.baosight.sczx.common.zm.basetools.TablePk;
import com.baosight.sczx.common.zm.cInterface.CmesConstants;
import com.baosight.sczx.zm.cs.domain.ZMCSSystemSettingCP;

/**
 * 参数设置-生产过程设置
 * <p>Title: ServiceZMCS12.java</p>
 * <p>Description: </p>
 * <p>Copyright: Baosight Software LTD.co Copyright (c) 2002</p>
 * <p>Company: Baosight Software</p>
 * @author 严洪浩
 * @version 1.0
 * <pre>Histroy:
 *          2011-5-16 上午08:08:54  严洪浩  Create
 *</pre>
 */
public class ServiceZMCS12 extends ServiceEPBase {
	
	/**
	 * 初始化参数设置
	 * <p>Function: initLoad</p>
	 * <p>Description: </p>
	 * <p>return value: ServiceZMCS12</p>
	 * <p>throws Exception:</p>
	 * <p>History:
	 *    2011-1-15下午02:26:48 严洪浩
	 * </p>
	 *
	 */
	@SuppressWarnings({"rawtypes", "unchecked" })
	@Override
	public EiInfo initLoad(EiInfo inInfo) {
		List _check = dao.query("ZMCSSystemSettingCP.query", new HashMap<String, String>());
		inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new ZMCSSystemSettingCP().eiMetadata);
		
		if(_check == null || _check.size() < 1) {
			List _resultList = new ArrayList();
			Map<String, Object> _tempMap = new HashMap<String, Object>();
			_tempMap.put("fdKeyId", TablePk.getInstance().getNextValue("T_CI_PRODUCTIONPROCESSSETTING"));
			_tempMap.put("fdGetData", 0);//自动获取数据 0关 1开
			_tempMap.put("fdCoalCount", 0);//掘进煤统计 0否 1是
			_tempMap.put("fdBeginDate", 1);//生产统计月起始日
			_tempMap.put("fdRealYield", 0);//实际产量 0验收量 1调度量 2汇报量 3实时量
			_tempMap.put("fdReportMonthMode", 1);//统计月计算方式，默认1
			_tempMap.put("fdMineParameter", 0.7);//计算采煤量的参数，默认0.7
			_tempMap.put("fdCoalDensity", 1.38);//煤层容量，默认1.28
			_tempMap.put("fdGangueDensity", 2.6);//矸石密度，默认2.6
			_tempMap.put("fdMineValidateFormula", 0);//采煤验收总量计算公式，默认0(采高*回采面积*煤层容量1.38)，1代表（采高-矸石厚度）*回采面积*煤层容量1.38+矸石量
			_tempMap.put("fdMeasuringMethod", 0);//采煤验收测量方式，默认0（长方形），1代表（梯形）
			_tempMap.put("fdIsCalculateEnd", 1);//是否推算终止点，默认1(是)，0(否)
			_tempMap.put("fdMingModle", 0);//矿井模型
			_tempMap.put("fdInstallationDays", 50);//安装调试天数
			_tempMap.put("fdSametimeMineNum", 2);//同采面个数
			
			dao.insert("ZMCSSystemSettingCP.insert", _tempMap); //如果初始数据不存在，添加初始数据
			_resultList.add(_tempMap);
			inInfo.getBlock(EiConstant.resultBlock).addRows(_resultList);
		}
		else {
			inInfo.getBlock(EiConstant.resultBlock).addRows(_check);
		}
		
		//后台不再构造下拉列表,在前台构造
		//inInfo.addBlock(getGetData());
		//inInfo.addBlock(getCoalCount());
		//inInfo.addBlock(getRealYield());
		return inInfo;
	}
	
	/**
	 * 修改
	 * <p>Function: update</p>
	 * <p>Description: </p>
	 * <p>return value: ServiceZMCS12</p>
	 * <p>throws Exception:</p>
	 * <p>History:
	 *    2011-1-15下午03:58:11 严洪浩
	 * </p>
	 *
	 */
	@Override
	public EiInfo update(EiInfo inInfo) {
		EiInfo outInfo = super.update(inInfo, "ZMCSSystemSettingCP.update");
		changeInitialData(outInfo);//如果修改成功则重新刷新数据
		return outInfo;
	}
	
	/**
	 * 如果修改成功则刷新数据
	 * <p>Function: changeInitialData</p>
	 * <p>Description: </p>
	 * <p>return value:void</p>
	 * <p>throws Exception:</p>
	 * <p>History:
	 *    2011-1-18下午02:59:02 严洪浩
	 * </p>
	 *
	 */
	private void changeInitialData(EiInfo outInfo){
		if(outInfo != null && outInfo.getStatus() != -1) {
			CmesConstants.SYSTEMSETTING_CP = 1;
		}
	}

}
